package cn.lzm.protocol;

import lombok.Getter;

/**
 * @author lzm
 * @Date 2024/11/5
 * @description 消息类型枚举
 */
@Getter
public enum ProtocolMessageTypeEnum {

    /**
     * 请求
     */
    REQUEST(0),

    /**
     * 响应
     */
    RESPONSE(1),

    /**
     * 心跳
     */
    HEART_BEAT(2),

    /**
     * 其他
     */
    OTHER(3);

    private final int key;

    ProtocolMessageTypeEnum(int key) {
        this.key = key;
    }

    /**
     * 根据key获取消息类型
     *
     * @param key
     * @return
     */
    public static ProtocolMessageTypeEnum getTypeByKey(int key) {
        for (ProtocolMessageTypeEnum typeEnum : ProtocolMessageTypeEnum.values()) {
            if (typeEnum.getKey() == key) {
                return typeEnum;
            }
        }
        return null;
    }

}
